// 扔骰子动画控制，返回投骰结果等
var Dice = {
  defaultTransform: 'translateX(38px) translateY(36px) translateZ(10px)' +
    'rotateX(-1620deg) rotateY(1080deg) rotateZ(1440deg)',

  diceHidingTime: 3000,
  degs: [
    {
      x: 85,
      y: 15,
      z: 170
    },
    {
      x: 5,
      y: 15,
      z: 100
    },
    {
      x: 65,
      y: 15,
      z: 100
    },
    {
      x: 175,
      y: 15,
      z: 20
    },
    {
      x: 185,
      y: 105,
      z: 170
    },
    {
      x: 65,
      y: 35,
      z: 10
    }
  ],

  throwDice: function(number, callback) {
    var deg = this.degs[number - 1];
    var rotates = 'rotateX(' + deg.x + 'deg) rotateY(' + deg.y +
      'deg) rotateZ(' + deg.z + 'deg)';
    var tx = Math.round(Math.random() * 150);
    var ty = Math.round(Math.random() * 150);
    var tz = Math.round(Math.random() * 50);
    
    var translates = 'translateX(' + tx + 'px) translateY(' + ty +
      'px) translateZ(' + tz + 'px) ';

    this.show();
    setTimeout(function() {
      $('#dice').css('-webkit-transform', translates + rotates);
    }, 0);

    setTimeout(function() {
      Dice.hide();
      callback && callback();
    }, this.diceHidingTime);
  },

  reset: function() {
    $('#dice').css('-webkit-transform', this.defaultTransform);
  },

  show: function() {
    $('#dice-wrapper').addClass('show');
  },

  hide: function() {
    $('#dice-wrapper').removeClass('show');
    this.reset();
  }
};

// 1: rotateX(85deg) rotateY(15deg) rotateZ(170deg)
// 2: rotateX(5deg) rotateY(15deg) rotateZ(100deg)
// 3: rotateX(65deg) rotateY(15deg) rotateZ(100deg)
// 4: rotateX(175deg) rotateY(15deg) rotateZ(20deg)
// 5: rotateX(185deg) rotateY(105deg) rotateZ(170deg)
// 6: rotateX(65deg) rotateY(35deg) rotateZ(10deg)